﻿namespace Preactor.ObjectModel.BaseTypes.MaterialControl
{
    using System;

    using Preactor.ObjectModel.Attributes;
    using Preactor.ObjectModel.Entities;
    using Preactor.ObjectModel.Interfaces.MaterialControl;

    public class Demand : PreactorRecord, IDemand
    {
        public Demand(PrimaryKey id, PreactorObjectModel preactorObjectModel)
            : base(id, preactorObjectModel)
        {
        }

        [PreactorField("Belongs to Order No.", FieldDeclarationType.FieldClassification)]
        public string BelongsToOrderNumber { get { return (string)GetValue("BelongsToOrderNumber"); } set { SetValue("BelongsToOrderNumber", value); } }

        [PreactorField("DEMAND TABLE", FieldDeclarationType.FieldClassification)]
        public int Number { get { return (int)GetValue("Number"); } set { SetValue("Number", value); } }

        [PreactorField("MATERIAL CONTROL ORDER NO", FieldDeclarationType.FieldClassification)]
        public string OrderNumber { get { return (string)GetValue("OrderNumber"); } set { SetValue("OrderNumber", value); } }

        [PreactorField("ORDER TYPE", FieldDeclarationType.FieldClassification)]
        public string OrderType { get { return (string)GetValue("OrderType"); } set { SetValue("OrderType", value); } }

        [PreactorField("Order Line", FieldDeclarationType.FieldClassification)]
        public int OrderLine { get { return (int)GetValue("OrderLine"); } set { SetValue("OrderLine", value); } }

        [PreactorField("Company", FieldDeclarationType.FieldClassification)]
        public string Company { get { return (string)GetValue("Company"); } set { SetValue("Company", value); } }

        [PreactorField("MATERIAL CONTROL PART NO", FieldDeclarationType.FieldClassification)]
        public string PartNumber { get { return (string)GetValue("PartNumber"); } set { SetValue("PartNumber", value); } }

        [PreactorField("Description", FieldDeclarationType.FieldClassification)]
        public string Description { get { return (string)GetValue("Description"); } set { SetValue("Description", value); } }

        [PreactorField("Wave", FieldDeclarationType.FieldClassification)]
        public string Wave { get { return (string)GetValue("Wave"); } set { SetValue("Wave", value); } }

        [PreactorField("DEMAND DATE", FieldDeclarationType.FieldClassification)]
        public DateTime DemandDate { get { return (DateTime)GetValue("DemandDate"); } set { SetValue("DemandDate", value); } }

        [PreactorField("PRIORITY", FieldDeclarationType.FieldClassification)]
        public int Priority { get { return (int)GetValue("Priority"); } set { SetValue("Priority", value); } }

        [PreactorField("QUANTITY", FieldDeclarationType.FieldClassification)]
        public double Quantity { get { return (double)GetValue("Quantity"); } set { SetValue("Quantity", value); } }

        [PreactorField("PEGGING MULTIPLE", FieldDeclarationType.FieldClassification)]
        public int MultipleQuantity { get { return (int)GetValue("MultipleQuantity"); } set { SetValue("MultipleQuantity", value); } }

        [PreactorField("Import Marker", FieldDeclarationType.FieldClassification)]
        public int ImportMarker { get { return (int)GetValue("ImportMarker"); } set { SetValue("ImportMarker", value); } }
    }
}
